home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Freeware 31 / FreelogHS31.iso / ArgentCompta / FASTCAISSE / Setup FASTCAISSE.exe / {app} / A Faire42.SQL < prev    next >
Text File  |  2003-11-03  |  2KB  |  70 lines

  1. SET GENERATOR VERSION_BASE TO 42;
  2. ALTER PROCEDURE "MAJSTOCK"
  3. (
  4.   "INDEXP" INTEGER,
  5.   "DELTA" SMALLINT
  6. )
  7. AS
  8. DECLARE VARIABLE V1 SMALLINT;
  9. DECLARE VARIABLE I INTEGER;
  10. DECLARE VARIABLE Q DECIMAL(11,2);
  11. BEGIN
  12. SELECT TYPESTOCK FROM PIECES WHERE INDX=:INDEXP AND TYPESTOCK<>1 AND STATUT IN (0,3) INTO V1;
  13. IF (V1 IS NOT NULL) THEN
  14. FOR SELECT INDEXARTICLE,SUM(QUANTITE) FROM LIGNES
  15. WHERE INDEXPIECE=:INDEXP
  16. AND INDEXARTICLE IS NOT NULL AND INDEXARTICLE>0
  17. AND QUANTITE IS NOT NULL AND QUANTITE<>0
  18. GROUP BY INDEXARTICLE
  19. INTO :I,:Q
  20. DO
  21. BEGIN
  22. Q=Q*:DELTA;
  23. IF (V1=4) THEN V1=0;
  24. IF (V1=0) THEN  /* TICKET, FACTURE */
  25. UPDATE ARTICLES SET DISPO=DISPO-:Q WHERE INDX=:I;
  26. ELSE IF (V1=2) THEN /* RESERVATION */
  27. UPDATE ARTICLES SET DISPO=DISPO-:Q,RESERVE=RESERVE+:Q WHERE INDX=:I;
  28. ELSE IF (V1=3) THEN /* BL */
  29. UPDATE ARTICLES SET DISPO=DISPO-:Q,BL_CLIENT=BL_CLIENT+:Q WHERE INDX=:I;
  30. ELSE IF (V1=5) THEN /* PRET */
  31. UPDATE ARTICLES SET DISPO=DISPO-:Q,EN_PRET=EN_PRET+:Q WHERE INDX=:I;
  32. ELSE IF (V1=6) THEN /* SAV */
  33. UPDATE ARTICLES SET EN_SAV=EN_SAV+:Q WHERE INDX=:I;
  34. ELSE IF (V1=7) THEN /* RETOUR SAV */
  35. UPDATE ARTICLES SET EN_SAV=EN_SAV-:Q WHERE INDX=:I;
  36. ELSE IF (V1=8) THEN /* AVOIR */
  37. UPDATE ARTICLES SET DISPO=DISPO+:Q WHERE INDX=:I;
  38. ELSE IF (V1=13) THEN /* COMMANDE */
  39. UPDATE ARTICLES SET EN_COMMANDE=EN_COMMANDE+:Q WHERE INDX=:I;
  40. ELSE IF (V1=14) THEN /* LIVRAISON */
  41. UPDATE ARTICLES SET DISPO=DISPO+:Q WHERE INDX=:I;
  42. END /* DO */
  43. END
  44.  ;
  45.  
  46. CREATE VIEW "QTE_ENCOMMANDE" (
  47.   "INDEXARTICLE",
  48.   "QTE"
  49. ) AS
  50.  
  51.  
  52. SELECT INDEXARTICLE,SUM(QUANTITE) FROM PIECES
  53. LEFT JOIN LIGNES L ON L.INDEXPIECE=INDX
  54. WHERE TYPEPIECE=13 AND STATUT=0 AND INDEXARTICLE<>0 AND QUANTITE<>0
  55. GROUP BY INDEXARTICLE
  56.  ;
  57.  
  58. CREATE VIEW "QTE_ENPRECOMMANDE" (
  59.   "INDEXARTICLE",
  60.   "QTE"
  61. ) AS
  62.  
  63.  
  64. SELECT INDEXARTICLE,SUM(QUANTITE) FROM PIECES
  65. LEFT JOIN LIGNES L ON L.INDEXPIECE=INDX
  66. WHERE TYPEPIECE=13 AND STATUT=2 AND INDEXARTICLE<>0 AND QUANTITE<>0
  67. GROUP BY INDEXARTICLE
  68.  ;
  69.  
  70.